package com.ithema.manger3.controller;

import com.ithema.manger3.domain.Teacher;
import com.ithema.manger3.service.TeacherService;

import java.util.Scanner;

public class TeacherController {
    //创建TeacherService对象
    TeacherService teacherService = new TeacherService();
    //键盘录入
    private Scanner sc = new Scanner(System.in);

    public void start() {
        //死循环
        while (true) {
            //主菜单
            System.out.println("--------欢迎来到 <老师> 管理系统--------");
            System.out.println("请输入您的选择: 1.添加老师  2.删除老师  3.修改老师  4.查看老师  5.退出");
            String line = sc.nextLine();
            //switch判断
            switch (line) {
                case "1":
                    //System.out.println("1.添加老师");
                    addTeacher();
                    break;
                case "2":
                    //System.out.println("2.删除老师");
                    deleteTeacher();
                    break;
                case "3":
                    //System.out.println("3.修改老师");
                    updateTeacher();
                    //otherUpdateStudent();
                    break;
                case "4":
                    //System.out.println("4.查看老师");
                    findAllTeacher();
                    break;
                case "5":
                    System.out.println("感谢您的使用");
                    return;
                default:
                    System.out.println("您的输入有误");
                    break;
            }
        }
    }
//修改老师信息
    public void updateTeacher() {
        //调用方法输入要修改的学号
        String updateSid = inputTeacher();
        //调用方法输入要修改的老师对象信息
        Teacher updateTea = inputTeacherInfo(updateSid);
        //调用TeacherService中的updateTeacher方法
        teacherService.updateTeacher(updateSid,updateTea);
        //输出结果
        System.out.println("修改成功!");
    }

    //删除老师信息
    public void deleteTeacher() {
        //调用方法录入老师已存在的编号
        String sid = inputTeacher();
        //调用TeacherService中的deleteTeacher方法
        teacherService.deleteTeacher(sid);
        System.out.println("删除成功!");

    }

    //查看信息
    public void findAllTeacher() {
        //调用TeacherService中的findAllTeacher
        Teacher[] teacher = teacherService.findAllTeacher();
        //判断
        if (teacher == null) {
            System.out.println("系统中没有数据,请输入后再查看");
            return;
        }
        //输出展示
        System.out.println("学号\t\t姓名\t年龄\t生日");
        //遍历数组
        for (int i = 0; i < teacher.length; i++) {
            Teacher t = teacher[i];
            if (t != null) {
                System.out.println(t.getSid() + "\t" + t.getName() + "\t" + t.getAge() + "\t\t" + t.getBirthday());
            }
        }
    }

    //添加老师
    public void addTeacher() {
        //定义学号
        String sid;
        //死循环
        while (true) {
            //键盘录入对象
            System.out.println("请输入号码:");
            sid = sc.nextLine();
            //调用TeacherService中的isExist方法判断学号是否存在
            boolean flag = teacherService.isExist(sid);
            //判断
            if (flag) {
                System.out.println("您输入的号码已存在!请重新输入");
            } else {
                break;
            }
        }
        //调用方法对老师对象进行录入
        Teacher tea = inputTeacherInfo(sid);
        //调用TeacherService中的addTeacher方法
        boolean flag = teacherService.addTeacher(tea);
        //判断
        if (flag) {
            System.out.println("添加成功!");
        } else {
            System.out.println("添加失败");
        }
    }

    //键盘录入老师对象封装
    public Teacher inputTeacherInfo(String sid) {
        System.out.println("请输入姓名");
        String name = sc.nextLine();
        System.out.println("请输入年龄");
        String age = sc.nextLine();
        System.out.println("请输入生日");
        String birthday = sc.nextLine();

        //创建对象录入
        Teacher tea = new Teacher();
        tea.setSid(sid);
        tea.setName(name);
        tea.setAge(age);
        tea.setBirthday(birthday);
        return tea;

    }

    //键盘录入老师数组中存在的编号
    public String inputTeacher(){
        //定义sid,为了在{ }外使用
        String sid;
        //死循环
        while(true){
            //键盘录入编号
            System.out.println("请输入编号:");
            sid=sc.nextLine();
            //调用TeacherService中的isExist方法判断学号是否存在
            boolean flag=teacherService.isExist(sid);
            //判断
            if(!flag){
                System.out.println("您输入的编号不存在,请重新输入!");
            }else{
                break;
            }
        }return sid;
    }
}
